検索ページの作成

PortWebは検索フォームを生成しません。 その代わりに、検索要求を自由なHTML書式で作成することができます。 これにより、PortWebは既存のウェブサイトとシームレスに統合できるようになります。

作成する検索フォームは、必要に応じて単純にすることも複雑にすることもできます。 「quickfind」、「query」の2つの異なるコマンドは、単純な検索クエリーと複雑な検索クエリーの両方に使われます。

quickfindコマンド

quickfindコマンドは、基本的なキーワード検索を行うために簡略化された検索方法です。 このコマンドは、指定されたテキストを使って「〜で始まる」検索を実行します。 次の表は、設定できるパラメータを示したものです。

quickfindコマンド

パラメータ

説明

quickfind

これは、コマンドの名前と同じですが、検索するキーワードを渡すためのパラメータでもあります。

catalog

使用されるカタログのエイリアスを指定します。 エイリアスは、ディスク上のカタログまたはPortfolio Serverで公開しているカタログに、設定ファイルを使って割り当てられます

template(オプション)

応答用ページで使われるHTMLの書き出しテンプレートの名前を指定します。 このパラメータが渡されないと、デフォルトのHTMLの書き出しテンプレート(4×4のグリッドによる基本的なサムネール表示レイアウト)が使われます。

sorton(オプション)

見つかったセットを並べ替える際の基準とするフィールドを指定します。 このフィールドは、単一の値を持つインデックスフィールドでなければなりません。 ここでフィールドを指定しない場合、レコードセットの順番は検索によって返される順番になります。

ascending(オプション)

レコードセットを並べ替える順番を指定します。 値0は昇順を示し、値1は降順を示します。 sortonパラメータが指定されていない場合、このパラメータは無視されます。 sortonパラメータは指定されていても、このパラメータが指定されていない場合、デフォルトの並べ替え順は0(昇順)です。

offset(オプション)

すでに表示されている収集したレコードの数を示す正の整数です。 このパラメータが指定されていないと、収集した最初のレコードから表示が開始されます。

例:

<A HREF="/scripts/PortWeb.dll?quickfind=com&catalog=Sample">...</A>

<FORM ACTION="/scripts/PortWeb.dll?QuickFind" METHOD=POST>

<INPUT NAME="quickfind" TYPE="Text" VALUE="">

<INPUT NAME="template" TYPE="HIDDEN" VALUE="Simple">

<INPUT NAME="sorton" TYPE="HIDDEN" VALUE="Filename">

<INPUT NAME="ascending" TYPE="HIDDEN" VALUE="1">

<INPUT NAME="offset" TYPE="HIDDEN" VALUE="10">

<INPUT NAME="catalog" TYPE="HIDDEN" VALUE="Sample">

<INPUT TYPE="submit">

</FORM>

 

queryコマンド

query要求はPortWebの中心となる機能です。 このコマンドを使うと、指定したPortfolioカタログで検索が実行され、指定したレイアウトで結果が返されるようになります。 次の表は、渡すことができる値を示したものです。

queryコマンド

パラメータ

説明

query

これは検索を定義するパラメータのセットです。

catalog

使用されるカタログのエイリアスを指定します。 エイリアスは、ディスク上のカタログまたはPortfolio Serverで公開しているカタログに、設定ファイルを使って割り当てられます。

template(オプション)

応答用ページで使われるHTMLの書き出しテンプレートの名前を指定します。 このパラメータが渡されないと、デフォルトのHTMLの書き出しテンプレート(4×4のグリッドによる基本的なサムネール表示レイアウト)が使われます。

sorton(オプション)

見つかったセットを並べ替える際の基準とする、単一の値を持つインデックスフィールドを指定します。 ここでフィールドを指定しない場合、レコードセットの順番は検索によって返される順番になります。

ascending(オプション)

レコードセットを並べ替える順番を指定します。 値0は昇順を示し、値1は降順を示します。 sortonパラメータが指定されていない場合、このパラメータは無視されます。 sortonパラメータは指定されていても、このパラメータが指定されていない場合、デフォルトの並べ替え順は0(昇順)です。

offset(オプション)

すでに表示されている収集したレコードの数を示す正の整数です。 このパラメータが指定されていないと、収集した最初のレコードから表示が開始されます。

queryパラメータ

このパラメータは、Portfolioで実行される検索を定義した変数のセットです。 クエリーの各句は、field、operator、valueという 3つの変数で定義されます。 2番目以降の各句は、join変数(「and」または「or」)を使って前の句と結合する必要があります。

次の表は、各変数の指定できる値を示したものです。

queryパラメータ

変数

指定できる値

field

指定されたデータベースの任意のインデックスフィールド。 非インデックスフィールドが指定された場合、クエリーは失敗します。

op

使用できる演算子は以下のとおりです。

  • Matches / Does Not Match−日付フィールド以外のすべてのフィールドで使用できます。

  • Equals / Does Not Equal−日付フィールドでのみ使用できます。

  • Greater Than / Greater Than or Equal To−数値フィールドでのみ使用できます。

  • Less Than / Less Than or Equal To−数値フィールドでのみ使用できます。

  • Starts With / Does Not Start With−文字列フィールドでのみ使用できます。

value

数値フィールドでのみ使用できます。

join(オプション)

この変数は、クエリーに複数の句が含まれる場合だけ使用され、「and」または「or」の値を指定できます。 このパラメータを指定しない場合「and」が使われます。

PortWebではPortfolioクライアントでサポートされるすべての演算子を使うことができますが、すべての演算子が各フィールドで機能するわけではありません。 選択したフィールドで演算子が機能しない場合、検索句は省略されます。 特定のフィールドでサポートされているかどうかが不明な演算子がある場合、Portfolioクライアントの検索機能を使って確認できます。 Portfolioクライアントの検索ダイアログボックスでフィールド名を選択し、演算子のプルダウンメニューを使って、そのフィールド名でサポートされている演算子を調べてください。

queryは、プラグインにより以下の基準に従って検証されます。

特定の句に対するこれらの検証が1つでも失敗すると、その句は省略されます。 queryのすべての句で検証が失敗した場合、プラグインは「クエリーに一致するレコードは見つかりません」というページを返します。 検証が成功すると、残りのパラメータが評価されます。

queryは最高10個の句を含むことができます。

例:

次の例は、2つの句を持つqueryコマンドを示したものです (コメントは説明のためだけに表示されています)。 サイトの目的に応じて、さまざまなパラメータを表示または非表示にすることができます。 この例では、最初の句のvalueフィールドはユーザーによって入力されますが、その他すべての値は非表示になっています。

<FORM ACTION="/scripts/PortWeb.dll?query" METHOD=POST>

<INPUT NAME="template" TYPE="HIDDEN" VALUE="Simple">

<INPUT NAME="catalog" TYPE="HIDDEN" VALUE="Sample">

<!-- 1つ目の句(ユーザー入力あり) -->

<INPUT NAME="field" TYPE="HIDDEN" VALUE="Keywords">

<INPUT NAME="op" TYPE="HIDDEN" VALUE="matches">

<INPUT NAME="value" TYPE="TEXT" VALUE="">

<!-- 2つ目の句(ユーザー入力なし) --> -->

<INPUT NAME="join" TYPE="HIDDEN" VALUE="and">

<INPUT NAME="field" TYPE="HIDDEN" VALUE="Extension Win">

<INPUT NAME="op" TYPE="HIDDEN" VALUE="matches">

<INPUT NAME="value" TYPE="HIDDEN" VALUE="jpg">

<INPUT TYPE="Submit">

</FORM>